﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Spring.Context;
using Spring.Context.Support;
using NUnit.Framework;
using BolsaWeb.Negocio;
using BolsaWeb.Dominio;

namespace BolsaWeb.Pruebas
{
    [TestFixture]
    public class TestBolsaTrabajoService
    {
        private IApplicationContext contexto = null;

        [TestFixtureSetUp]
        public void InicializarSpring()
        {
            this.contexto = new XmlApplicationContext(
                "assembly://BolsaWeb/BolsaWeb/capaNegocio.xml",
                "assembly://BolsaWeb/BolsaWeb/capaPersistencia.xml");
        }
        [Test]
        public void RegistroOfertanteValido()
        {
            BolsaTrabajoService os = (BolsaTrabajoService)this.contexto.GetObject("bolsaTrabajoService");
            Assert.NotNull(os);
            Ofertante ro = null;
            Assert.DoesNotThrow(delegate
            {
                ro = os.crearOfertante("10414045880", "Ofertante Testing", "suppor@mail.com", "11111");
            });
            Assert.NotNull(ro);
            Assert.Greater(ro.id, 0);
        }
        [Test]
        public void VerificarRucOfertanteValido()
        {
            BolsaTrabajoService os = (BolsaTrabajoService)this.contexto.GetObject("bolsaTrabajoService");
            Assert.NotNull(os);
            Ofertante ro = null;
            Assert.Catch<RucInvalidoException>(delegate
            {
                ro = os.crearOfertante("21212", "Grupo comercio", "suppor@mail.com", "12232");
            });
        }
        [Test]
        public void SeleccionarGanador()
        {
            BolsaTrabajoService os = (BolsaTrabajoService)this.contexto.GetObject("bolsaTrabajoService");
            Assert.NotNull(os);
            Assert.DoesNotThrow(delegate
            {
                os.seleccionarGanador(2, 3);
            });
        }
    }
}
